// addUniversity/pages/addUniversity/addUniversity.js
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    provinces: [
      {
        value: 0,
        text: '全国'
      },
      {
        value: 1,
        text: '广东'
      },
      {
        value: 2,
        text: '湖南'
      },
      {
        value: 3,
        text: '江西'
      },
      {
        value: 4,
        text: '浙江'
      },
      {
        value: 5,
        text: '河北'
      },
      {
        value: 6,
        text: '陕西'
      },
      {
        value: 7,
        text: '山西'
      },
      {
        value: 8,
        text: '新疆'
      }, 
      {
        value: 9,
        text: '辽宁'
      },
      {
        value: 10,
        text: '内蒙古'
      },
      {
        value: 11,
        text: '黑龙江'
      },
      {
        value: 12,
        text: '吉林'
      },
      {
        value: 13,
        text: '江苏'
      },
      {
        value: 14,
        text: '安徽'
      },
      {
        value: 15,
        text: '福建'
      },
      {
        value: 16,
        text: '山东'
      }, 
      {
        value: 17,
        text: '河南'
      },
      {
        value: 18,
        text: '湖北'
      },
      {
        value: 19,
        text: '广西'
      },
      {
        value: 20,
        text: '海南'
      },
      {
        value: 21,
        text: '四川'
      },
      {
        value: 22,
        text: '贵州'
      },
      {
        value: 23,
        text: '云南'
      },
      {
        value: 24,
        text: '西藏'
      },
      {
        value: 25,
        text: '甘肃'
      },
      {
        value: 26,
        text: '青海'
      },
      {
        value: 27,
        text: '宁夏'
      },
      {
        value: 28,
        text: '北京'
      },
      {
        value: 29,
        text: '重庆'
      },
      {
        value: 30,
        text: '上海'
      },
      {
        value: 31,
        text: '天津'
      }
    ],

    priority: [
      { 
        value: 0, 
        text: '学校优先' 
      },
      { 
        value: 1, 
        text: '专业优先' 
      },
    ],
    // 判断变量
    isSearch:false,
    isShow:false,
    isLoading: false,
    isLow: false,

    // 用户信息
    userMsg: {},
    userInfo: {},

    searchValue: "",
    provinceValue: 0,
    priorityValue: 0,

    // 储存大学列表
    universityList: [], // 最终展示的大学列表
    searchUniversityList: [], // 搜索得到的大学列表
    matchUniversityList: [], // 匹配得到的大学列表

    voluntaryList:[],  //已选de志愿志愿列表

     // 页码
     searchPage: 1,
     page: 1,
     pageSize: 20,

     university_order_id:0,
  },

  // 监听搜索框 
  // 当搜索框清零时回到匹配列表
  // 得到搜索框的修改信息，把搜索学校列表清空，重新从服务器获取匹配学校列表
  onChange(e) {
    this.setData({
      searchValue: e.detail,
    });
    if(e.detail == ""){
      this.onClear();
    }
  },
  onSearch(e) {
    // 增加判空，不允许用户搜索空值
    if(e.detail == ""){
      wx:wx.showToast({
        title: '搜索框不能为空',
        icon: 'none'
      })
      this.onClear();
      return;
    }
    this.setData({
      searchPage: 1,
      searchUniversityList: [],
      isSearch: true
    })
    setTimeout(()=>{
      this.getSearchUniversity()
    },100)
  },
  onClear() {
    this.setData({
      isSearch: false,
      page:1,
      universityList: this.data.matchUniversityList[0]
    })
    while(this.data.matchUniversityList[this.data.page]){
      this.setData({
        page: this.data.page+1,
        universityList: [...this.data.universityList,...this.data.matchUniversityList[this.data.page]]
      })
    }
  },

  //监听下拉菜单
  onProvinceChange(e){
    this.setData({
      provinceValue: e.detail,
      page: 1,
      matchUniversityList: []
    }),
    this.getUniversityList()
    wx.showToast({
      title: this.data.provinces[this.data.provinceValue].text,
    })
  },
  onPriorityChange(e){
    this.setData({
      priorityValue: e.detail,
    }),
    wx.showToast({
      title: this.data.priority[this.data.priorityValue].text,
    })
  },

  //跳转到学校页面，进行填报
  select(e){
    const {index} = e.currentTarget.dataset
    var university=this.data.universityList[index]
    for(var i=0;i<this.data.voluntaryList.length;i++){
      if(this.data.voluntaryList[i]!=null&&this.data.voluntaryList[i].schoolName==university.universityName){  //该学校已填报
        var voluntaryItem = JSON.stringify(this.data.voluntaryList[i])
        var university_order_id = i+1
        wx.navigateTo({  
          url: '/addUniversity/pages/schoolInfo/schoolInfo?voluntaryItem='+voluntaryItem+'&university_order_id='+university_order_id,
        })
      }
    }
    wx.navigateTo({  //该学校未填报
      url: '/addUniversity/pages/schoolInfo/schoolInfo?universityName='+university.universityName+'&university_order_id='+this.data.university_order_id,
    })
  },

  //模糊搜索从服务器获取大学列表
  getSearchUniversity(){
    this.setData({
      isLoading: true
    })
    wx.showLoading({
      title: '正在搜索...',
    })
    wx.request({
      url: app.globalData.requestUrl +'/school/searchSchoolInfo',
      method: 'GET',
      data: {
        // 输入框参数
        schoolMsg: this.data.searchValue,
         // 页码
         page: this.data.searchPage,
         // 获取数
         limit: this.data.pageSize
      },
      header: {
        "content-type": "application/x-www-form-urlencoded"
      },
      success: (res) => {
        if(res.data.code == 202){
          this.setData({
            searchUniversityList: [...this.data.searchUniversityList,...res.data.obj.data],
          })
          // 把搜索学校列表数据放入展示列表中进行展示
          this.setData({
            universityList: this.data.searchUniversityList
          })
        }
        else if(res.data.code == 401){
          wx:wx.showToast({
            title: '服务器异常，稍后再试',
            icon: "none"
          })
        }
      },
      fail: (res) => {
        wx:wx.showToast({
          title: '网络异常，稍后再试',
          icon: "none"
        })
      },
      complete: () => {
        wx.hideLoading()
        this.setData({
          isLoading: false
        })
      }
    })
  },

  // 从服务器获取大学列表
  getUniversityList(){
    this.setData({
      isLoading: true
    })
    wx.showLoading({
      title: '正在匹配学校...',
    })
    wx.request({
      url: app.globalData.requestUrl +'/school/matchschoolList',
      method: 'GET',
      data: {
        page: this.data.page,
        limit: this.data.pageSize,
        proviceValue: this.data.provinces[this.data.provinceValue].text,
        // 学校优先：0,专业优先：1
        priorityValue: this.data.priorityValue,
        st_score: this.data.userMsg.score,
        st_ranking: this.data.userMsg.ranking,
        subject: this.data.userMsg.mainSubject,
        username:this.data.userInfo.nickName
      },
      success: (res) => {
        console.log(res.data)
        // 返回信息成功
        if(res.data.code == 204){
          this.setData({
            matchUniversityList: [...this.data.matchUniversityList, ...res.data.obj.data]
          })
        }

        // 未有匹配信息或查询信息已经全部返回
        else if(res.data.code == 404){
          if(!this.data.isLow){
            wx:wx.showToast({
              title: '这已经是全部了',
              icon: 'none'
            })
            this.setData({
              isLow : true
            })
          }
        }

        else if(res.data.code == 410){
          this.setData({
            matchUniversityList: [...this.data.matchUniversityList, ...res.data.obj.data]
          })
        }

        // 把匹配学校列表数据放入展示列表中进行展示
        this.setData({
          universityList: this.data.matchUniversityList[0]
        })
        while(this.data.matchUniversityList[this.data.page]){
          this.setData({
            page: this.data.page+1,
            universityList: [...this.data.universityList,...this.data.matchUniversityList[this.data.page]]
          })
        }
      },
      fail: (res) => {
        wx:wx.showToast({
          title: '网络异常，稍后再试',
          icon: 'none'
        })
      },
      complete: () => {
        wx.hideLoading()
        this.setData({
          isLoading: false
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var university_order_id = options.university_order_id;
    var voluntaryList = JSON.parse(options.voluntaryList);
    this.setData({
      university_order_id : university_order_id,
      voluntaryList : voluntaryList
    })
     //从缓存中获取用户信息
     var that = this;
     wx.getStorage({
       key: "userInfo",
       success:function(res){
         that.setData({
           userInfo: res.data
         });
       },
     })
     //从缓存中同步获取考生信息
     try {
       var value = wx.getStorageSync('isShow')
       if (value) {
         that.setData({
           isShow: value
         });
         try {
           var value = wx.getStorageSync('userMsg')
           if (value) {
             that.setData({
               userMsg: value
             });
           }
         } catch (e) {
           if(that.data.isShow == true){
             wx:wx.showToast({
               title: '请登录或输入高考信息',
               icon: "none"
             })
           }
         }
       }
     } catch (e) {
     }
 
     // 获取匹配学校列表
     this.getUniversityList()

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if(this.data.isLoading) return;
    // 如果处于搜索状态，上拉触底
    if(this.data.isSearch) {
      this.setData({
        searchPage: this.data.searchPage + 1
      })
      this.getSearchUniversity();
    }
    // 匹配状态上拉触底
    // else{
    //   this.setData({
    //     page: this.data.page + 1
    //   })
    //   this.getUniversityList();
    // }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})